/**
 * @ClassName: MybatisUtils 
 * Description:
 * @author h
 * @date  2017年10月14日下午6:33:13
 * @version 1.0
 *  
 */
package com.boco.utils;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**
 * Tilte: MybatisUtils 
 * Description:
 * @author h
 * @date  2017年10月14日下午6:33:13
 * @version 1.0
 *  
 */
public class MybatisUtils {
	private static SqlSessionFactory sqlSessionFactory;

	/*
	 * 重量级对象：系统创建重量级对象时，消耗的系统资源较大
	 * SqlSessionFactory对象为重量级对象
	 * 线程安全：所有的请求共享一个对象，如果这个对象有可修改的属性，那就是线程不安全的
	 *                                没有可修改的属性，那就是线程安全的
	 * 
	 */
	public static SqlSession getSqlSession(){
		 
		try {
			InputStream is = Resources.getResourceAsStream("mybatis.xml");
			 
			if (sqlSessionFactory==null) {
				sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
			}
		    return sqlSessionFactory.openSession();
  
		} catch (IOException e) {
	 
			e.printStackTrace();
		}
		return null;
	}

}
